#include "src/fceu.h"
#include "src/driver.h"

extern "C"{

extern struct{uint8 r,g,b,a;} s_psdl[256];
//快速绘制图形
int CFCEUD_FastDrawPix32(uint32*pix32,uint8_t*pix){
    int y,x;
    for(y=0;y<240;y++){
        for(x=0;x<256;x++){
            uint8_t* color = (uint8_t*)pix32;
            int offset  = x+y*256;
            color[0] = s_psdl[pix[offset]].b;
            color[1] = s_psdl[pix[offset]].g;
            color[2] = s_psdl[pix[offset]].r;
            //color[3] = s_psdl[pix[]].a;
            color[3] = 0xff;
            pix32 ++;
        }
    }
    return 0;
}
    
    
//导出c接口
FILE* CFCEUI_UTF8fopen_C(const char* a1,const char* a2);
bool CFCEU_IsValidUI(EFCEUI a1);
void CFCEUD_VideoChanged();
bool CFCEUD_PauseAfterPlayback();
void CFCEUD_UpdatePPUView(int a1,int a2);
void CFCEUD_UpdateNTView(int a1,bool a2);
void CFCEUD_TraceInstruction(uint8* a1,int a2);
void CFCEUD_DebugBreakpoint(int a1);
void CFCEUD_CmdOpen();
void CFCEUD_HideMenuToggle();
void CFCEUD_ToggleStatusIcon();
int CFCEUD_ShowStatusIcon();
void CFCEUD_TurboToggle();
void CFCEUD_TurboOff();
void CFCEUD_TurboOn();
void CFCEUD_SetEmulationSpeed(int a1);
void CFCEUI_HandleEmuCommands(struct func* a1);
void CFCEUD_AviStop();
void CFCEUD_AviRecordTo();
void CFCEUI_SetAviDisableMovieMessages(bool a1);
bool CFCEUI_AviDisableMovieMessages();
void CFCEUI_SetAviEnableHUDrecording(bool a1);
bool CFCEUI_AviEnableHUDrecording();
bool CFCEUI_AviIsRecording();
void CFCEUI_AviSoundUpdate(void* a1,int a2);
void CFCEUI_AviVideoUpdate(const unsigned char* a1);
void CFCEUI_AviEnd();
int CFCEUI_AviBegin(const char* a1);
void CFCEUI_FrameAdvanceEnd();
void CFCEUI_FrameAdvance();
void CFCEUD_OnCloseGame();
bool CFCEUD_ShouldDrawInputAids();
void CFCEUI_ToggleEmulationPause();
void CFCEUI_SetEmulationPaused(int a1);
void CFCEUI_ClearEmulationFrameStepped();
int CFCEUI_EmulationFrameStepped();
int CFCEUI_EmulationPaused();
int CFCEUI_DatachSet(const uint8* a1);
void CFCEUI_FDSSelect();
void CFCEUI_FDSInsert();
void CFCEUI_VSUniCoin();
void CFCEUI_VSUniSetDIP(int a1,int a2);
uint8 CFCEUI_VSUniGetDIPs();
void CFCEUI_VSUniToggleDIP(int a1);
void CFCEUI_VSUniToggleDIPView();
int CFCEUI_NSFGetInfo(uint8* a1,uint8* a2,uint8* a3,int a4);
int CFCEUI_NSFChange(int a1);
void CFCEUI_NSFSetVis(int a1);
void CFCEUI_SetLowPass(int a1);
uint32 CFCEUI_CRC32(uint32 a1,uint8* a2,uint32 a3);
void CFCEUI_GetIVectors(uint16* a1,uint16* a2,uint16* a3);
uint16 CFCEUI_Disassemble(void* a1,uint16 a2,char* a3);
void CFCEUI_IRQ();
void CFCEUI_NMI();
void CFCEUI_MemPoke(uint16 a1,uint8 a2,int a3);
uint8 CFCEUI_MemSafePeek(uint16 a1);
void CFCEUI_MemDump(uint16 a1,int32 a2,struct func* a3);
void CFCEUI_SetDirOverride(int a1,char* a2);
void CFCEUI_CheatSearchSetCurrentAsOriginal();
void CFCEUI_CheatSearchShowExcluded();
int CFCEUI_SetCheat(uint32 a1,const char* a2,int32 a3,int32 a4,int a5,int a6,int a7);
int CFCEUI_GetCheat(uint32 a1,char** a2,uint32* a3,uint8* a4,int* a5,int* a6,int* a7);
void CFCEUI_ListCheats(struct func* a1,void* a2);
void CFCEUI_CheatSearchEnd(int a1,uint8 a2,uint8 a3);
void CFCEUI_CheatSearchBegin();
void CFCEUI_CheatSearchGet(struct func* a1,void* a2);
void CFCEUI_CheatSearchGetRange(uint32 a1,uint32 a2,struct func* a3);
int32 CFCEUI_CheatSearchGetCount();
int CFCEUI_ToggleCheat(uint32 a1);
int CFCEUI_DelCheat(uint32 a1);
int CFCEUI_AddCheat(const char* a1,uint32 a2,uint8 a3,int a4,int a5);
int CFCEUI_DecodeGG(const char* a1,int* a2,int* a3,int* a4);
int CFCEUI_DecodePAR(const char* a1,int* a2,int* a3,int* a4,int* a5);
void CFCEUI_SaveSnapshotAs();
void CFCEUI_SaveSnapshot();
int32 CFCEUI_GetDesiredFPS();
void CFCEUD_LuaRunFrom();
void CFCEUD_MovieReplayFrom();
void CFCEUD_MovieRecordTo();
void CFCEUD_SetInput(bool a1,bool a2,ESI a3,ESI a4,ESIFC a5);
void CFCEUD_LoadStateFrom();
void CFCEUD_SaveStateAs();
void CFCEUI_LoadState(const char* a1,bool a2);
void CFCEUI_SaveState(const char* a1,bool a2);
void CFCEUI_SelectStateNext(int a1);
int CFCEUI_SelectState(int a1,int a2);
void CFCEUD_SoundVolumeAdjust(int a1);
void CFCEUD_SoundToggle();
void CFCEUI_SetSoundQuality(int a1);
void CFCEUI_SetPCMVolume(uint32 a1);
void CFCEUI_SetNoiseVolume(uint32 a1);
void CFCEUI_SetSquare2Volume(uint32 a1);
void CFCEUI_SetSquare1Volume(uint32 a1);
void CFCEUI_SetTriangleVolume(uint32 a1);
void CFCEUI_SetSoundVolume(uint32 a1);
void CFCEUI_Sound(int a1);
void CFCEUI_SetUserPalette(uint8* a1,int a2);
//void CFCEUI_SetBaseDirectory(const std::__cxx11::string& a1);
void CFCEUI_SetRenderedLines(int a1,int a2,int a3,int a4);
int CFCEUI_GetCurrentVidSystem(int* a1,int* a2);
void CFCEUI_SetRegion(int a1);
void CFCEUI_SetVidSystem(int a1);
void CFCEUI_SetGameGenie(bool a1);
void CFCEUI_Kill();
void CFCEUI_CloseGame();
void CFCEUI_Emulate(uint8** a1,int32** a2,int32* a3,int a4);
bool CFCEUI_Initialize();
FCEUGI* CFCEUI_LoadGameVirtual(const char* a1,int a2,bool a3);
FCEUGI* CFCEUI_LoadGame(const char* a1,int a2,bool a3);
void CFCEUI_GetRenderPlanes(bool& a1,bool& a2);
void CFCEUI_SetRenderPlanes(bool a1,bool a2);
void CFCEUI_DisableSpriteLimitation(int a1);
void CFCEUI_UseInputPreset(int a1);
bool CFCEUI_GetInputMicrophone();
bool CFCEUI_GetInputFourscore();
void CFCEUI_SetInputFourscore(bool a1);
void CFCEUI_SetInputFC(ESIFC a1,void* a2,int a3);
void CFCEUI_SetInput(int a1,ESI a2,void* a3,int a4);
void CFCEUI_SetNTSCTH(bool a1,int a2,int a3);
void CFCEUI_GetNTSCTH(int* a1,int* a2);
void CFCEUI_NTSCINC();
void CFCEUI_NTSCDEC();
void CFCEUI_NTSCSELTINT();
void CFCEUI_NTSCSELHUE();
void CFCEUI_PowerNES();
void CFCEUI_ResetNES();
int CFCEUI_EndWaveRecord();
bool CFCEUI_BeginWaveRecord(const char* a1);
void CFCEUD_NetworkClose();
void CFCEUI_NetplayText(uint8* a1);
void CFCEUD_NetplayText(uint8* a1);
int CFCEUD_RecvData(void* a1,uint32 a2);
int CFCEUD_SendData(void* a1,uint32 a2);
void CFCEUI_NetplayStop();
int CFCEUI_NetplayStart(int a1,int a2);
void CFCEUD_Message(const char* a1);
void CFCEUD_PrintError(const char* a1);
void CFCEUD_GetPalette(uint8 a1,uint8* a2,uint8* a3,uint8* a4);
void CFCEUD_SetPalette(uint8 a1,uint8 a2,uint8 a3,uint8 a4);
const char* CFCEUD_GetCompilerString();
//ArchiveScanRecord CFCEUD_ScanArchive(std::__cxx11::string a1);
//FCEUFILE* CFCEUD_OpenArchive(ArchiveScanRecord& a1,std::__cxx11::string& a2,std::__cxx11::string* a3);
//FCEUFILE* CFCEUD_OpenArchiveIndex(ArchiveScanRecord& a1,std::__cxx11::string& a2,int a3);
EMUFILE_FILE* CFCEUD_UTF8_fstream(const char* a1,const char* a2);
FILE* CFCEUD_UTF8fopen(const char* a1,const char* a2);
//void CFCEU_SplitArchiveFilename(std::__cxx11::string a1,std::__cxx11::string& a2,std::__cxx11::string& a3,std::__cxx11::string& a4);
//std::__cxx11::string CFCEU_MakeFName(int a1,int a2,const char* a3);
//std::__cxx11::string CFCEU_MakePath(int a1,const char* a2);
//std::__cxx11::string CFCEU_GetPath(int a1);
int CFCEU_fisarchive(FCEUFILE* a1);
uint64 CFCEU_fgetsize(FCEUFILE* a1);
int CFCEU_fgetc(FCEUFILE* a1);
int CFCEU_read16le(uint16* a1,FCEUFILE* a2);
int CFCEU_read32le(uint32* a1,FCEUFILE* a2);
uint64 CFCEU_ftell(FCEUFILE* a1);
int CFCEU_fseek(FCEUFILE* a1,long int a2,int a3);
uint64 CFCEU_fwrite(void* a1,size_t a2,size_t a3,FCEUFILE* a4);
uint64 CFCEU_fread(void* a1,size_t a2,size_t a3,FCEUFILE* a4);
int CFCEU_fclose(FCEUFILE* a1);
bool CFCEU_isFileInArchive(const char* a1);
FCEUFILE* CFCEU_fopen(const char* a1,const char* a2,char* a3,char* a4,int a5,const char** a6);
void CFCEU_PutImage();
void CFCEU_TogglePPU();
void CFCEU_DispMessageOnMovie(char* a1);
void CFCEU_DispMessage(char* a1,int a2);
void CFCEU_printf(char* a1);
void CFCEU_PrintError(char* a1);
int CFCEU_TextScanlineOffsetFromBottom(int a1);
int CFCEU_TextScanlineOffset(int a1);
void CFCEU_WriteRomByte(uint32 a1,uint8 a2);
uint8 CFCEU_ReadRomByte(uint32 a1);
char* CFCEUI_GetAboutString();
void CFCEUI_RewindToLastAutosave();
void CFCEU_ResetVidSys();
void CFCEU_MemoryRand(uint8* a1,uint32 a2);
uint16 CFCEU_de16lsb(uint8* a1);
uint32 CFCEU_de32lsb(uint8* a1);
uint64 CFCEU_de64lsb(uint8* a1);
void CFCEU_en16lsb(uint8* a1,uint16 a2);
void CFCEU_en32lsb(uint8* a1,uint32 a2);

//-------------------------------------------------------------------------------------------------

FILE* CFCEUI_UTF8fopen_C(const char* a1,const char* a2){ return  FCEUI_UTF8fopen_C(a1,a2);}
bool CFCEU_IsValidUI(EFCEUI a1){ return  FCEU_IsValidUI(a1);}
void CFCEUD_VideoChanged(){  FCEUD_VideoChanged();}
bool CFCEUD_PauseAfterPlayback(){ return  FCEUD_PauseAfterPlayback();}
void CFCEUD_UpdatePPUView(int a1,int a2){  FCEUD_UpdatePPUView(a1,a2);}
void CFCEUD_UpdateNTView(int a1,bool a2){  FCEUD_UpdateNTView(a1,a2);}
void CFCEUD_TraceInstruction(uint8* a1,int a2){  FCEUD_TraceInstruction(a1,a2);}
void CFCEUD_DebugBreakpoint(int a1){  FCEUD_DebugBreakpoint(a1);}
void CFCEUD_CmdOpen(){  FCEUD_CmdOpen();}
void CFCEUD_HideMenuToggle(){  FCEUD_HideMenuToggle();}
void CFCEUD_ToggleStatusIcon(){  FCEUD_ToggleStatusIcon();}
int CFCEUD_ShowStatusIcon(){ return  FCEUD_ShowStatusIcon();}
void CFCEUD_TurboToggle(){  FCEUD_TurboToggle();}
void CFCEUD_TurboOff(){  FCEUD_TurboOff();}
void CFCEUD_TurboOn(){  FCEUD_TurboOn();}
void CFCEUD_SetEmulationSpeed(int a1){  FCEUD_SetEmulationSpeed(a1);}
void CFCEUI_HandleEmuCommands(struct func* a1){  FCEUI_HandleEmuCommands((int (*)(int))a1);}
void CFCEUD_AviStop(){  FCEUD_AviStop();}
void CFCEUD_AviRecordTo(){  FCEUD_AviRecordTo();}
void CFCEUI_SetAviDisableMovieMessages(bool a1){  FCEUI_SetAviDisableMovieMessages(a1);}
bool CFCEUI_AviDisableMovieMessages(){ return  FCEUI_AviDisableMovieMessages();}
void CFCEUI_SetAviEnableHUDrecording(bool a1){  FCEUI_SetAviEnableHUDrecording(a1);}
bool CFCEUI_AviEnableHUDrecording(){ return  FCEUI_AviEnableHUDrecording();}
bool CFCEUI_AviIsRecording(){ return  FCEUI_AviIsRecording();}
void CFCEUI_AviSoundUpdate(void* a1,int a2){  FCEUI_AviSoundUpdate(a1,a2);}
void CFCEUI_AviVideoUpdate(const unsigned char* a1){  FCEUI_AviVideoUpdate(a1);}
void CFCEUI_AviEnd(){  FCEUI_AviEnd();}
int CFCEUI_AviBegin(const char* a1){ return  FCEUI_AviBegin(a1);}
void CFCEUI_FrameAdvanceEnd(){  FCEUI_FrameAdvanceEnd();}
void CFCEUI_FrameAdvance(){  FCEUI_FrameAdvance();}
void CFCEUD_OnCloseGame(){  FCEUD_OnCloseGame();}
bool CFCEUD_ShouldDrawInputAids(){ return  FCEUD_ShouldDrawInputAids();}
void CFCEUI_ToggleEmulationPause(){  FCEUI_ToggleEmulationPause();}
void CFCEUI_SetEmulationPaused(int a1){  FCEUI_SetEmulationPaused(a1);}
void CFCEUI_ClearEmulationFrameStepped(){  FCEUI_ClearEmulationFrameStepped();}
int CFCEUI_EmulationFrameStepped(){ return  FCEUI_EmulationFrameStepped();}
int CFCEUI_EmulationPaused(){ return  FCEUI_EmulationPaused();}
int CFCEUI_DatachSet(const uint8* a1){ return  FCEUI_DatachSet(a1);}
void CFCEUI_FDSSelect(){  FCEUI_FDSSelect();}
void CFCEUI_FDSInsert(){  FCEUI_FDSInsert();}
void CFCEUI_VSUniCoin(){  FCEUI_VSUniCoin();}
void CFCEUI_VSUniSetDIP(int a1,int a2){  FCEUI_VSUniSetDIP(a1,a2);}
uint8 CFCEUI_VSUniGetDIPs(){ return  FCEUI_VSUniGetDIPs();}
void CFCEUI_VSUniToggleDIP(int a1){  FCEUI_VSUniToggleDIP(a1);}
void CFCEUI_VSUniToggleDIPView(){  FCEUI_VSUniToggleDIPView();}
int CFCEUI_NSFGetInfo(uint8* a1,uint8* a2,uint8* a3,int a4){ return  FCEUI_NSFGetInfo(a1,a2,a3,a4);}
int CFCEUI_NSFChange(int a1){ return  FCEUI_NSFChange(a1);}
void CFCEUI_NSFSetVis(int a1){  FCEUI_NSFSetVis(a1);}
void CFCEUI_SetLowPass(int a1){  FCEUI_SetLowPass(a1);}
uint32 CFCEUI_CRC32(uint32 a1,uint8* a2,uint32 a3){ return  FCEUI_CRC32(a1,a2,a3);}
void CFCEUI_GetIVectors(uint16* a1,uint16* a2,uint16* a3){  FCEUI_GetIVectors(a1,a2,a3);}
#ifdef BUILD_ALL_VERSION
uint16 CFCEUI_Disassemble(void* a1,uint16 a2,char* a3){ return  FCEUI_Disassemble(a1,a2,a3);}
#endif
void CFCEUI_IRQ(){  FCEUI_IRQ();}
void CFCEUI_NMI(){  FCEUI_NMI();}
#ifdef BUILD_ALL_VERSION
void CFCEUI_MemPoke(uint16 a1,uint8 a2,int a3){  FCEUI_MemPoke(a1,a2,a3);}
uint8 CFCEUI_MemSafePeek(uint16 a1){ return  FCEUI_MemSafePeek(a1);}
void CFCEUI_MemDump(uint16 a1,int32 a2,struct func* a3){  FCEUI_MemDump(a1,a2,(void (*)(uint16 a, uint8 v))a3);}
#endif
void CFCEUI_SetDirOverride(int a1,char* a2){  FCEUI_SetDirOverride(a1,a2);}
void CFCEUI_CheatSearchSetCurrentAsOriginal(){  FCEUI_CheatSearchSetCurrentAsOriginal();}
void CFCEUI_CheatSearchShowExcluded(){  FCEUI_CheatSearchShowExcluded();}
int CFCEUI_SetCheat(uint32 a1,const char* a2,int32 a3,int32 a4,int a5,int a6,int a7){ return  FCEUI_SetCheat(a1,a2,a3,a4,a5,a6,a7);}
int CFCEUI_GetCheat(uint32 a1,char** a2,uint32* a3,uint8* a4,int* a5,int* a6,int* a7){ return  FCEUI_GetCheat(a1,a2,a3,a4,a5,a6,a7);}
void CFCEUI_ListCheats(struct func* a1,void* a2){  FCEUI_ListCheats((int (*)(char *name, uint32 a, uint8 v, int compare, int s, int type, void *data))a1,a2);}
void CFCEUI_CheatSearchEnd(int a1,uint8 a2,uint8 a3){  FCEUI_CheatSearchEnd(a1,a2,a3);}
void CFCEUI_CheatSearchBegin(){  FCEUI_CheatSearchBegin();}
void CFCEUI_CheatSearchGet(struct func* a1,void* a2){  FCEUI_CheatSearchGet((int (*)(uint32 a, uint8 last, uint8 current, void *data))a1,a2);}
void CFCEUI_CheatSearchGetRange(uint32 a1,uint32 a2,struct func* a3){  FCEUI_CheatSearchGetRange(a1,a2,(int (*)(uint32 a, uint8 last, uint8 current))a3);}
int32 CFCEUI_CheatSearchGetCount(){ return  FCEUI_CheatSearchGetCount();}
int CFCEUI_ToggleCheat(uint32 a1){ return  FCEUI_ToggleCheat(a1);}
int CFCEUI_DelCheat(uint32 a1){ return  FCEUI_DelCheat(a1);}
int CFCEUI_AddCheat(const char* a1,uint32 a2,uint8 a3,int a4,int a5){ return  FCEUI_AddCheat(a1,a2,a3,a4,a5);}
int CFCEUI_DecodeGG(const char* a1,int* a2,int* a3,int* a4){ return  FCEUI_DecodeGG(a1,a2,a3,a4);}
int CFCEUI_DecodePAR(const char* a1,int* a2,int* a3,int* a4,int* a5){ return  FCEUI_DecodePAR(a1,a2,a3,a4,a5);}
void CFCEUI_SaveSnapshotAs(){  FCEUI_SaveSnapshotAs();}
void CFCEUI_SaveSnapshot(){  FCEUI_SaveSnapshot();}
int32 CFCEUI_GetDesiredFPS(){ return  FCEUI_GetDesiredFPS();}
#ifdef BUILD_ALL_VERSION
void CFCEUD_LuaRunFrom(){  FCEUD_LuaRunFrom();}
#endif
void CFCEUD_MovieReplayFrom(){  FCEUD_MovieReplayFrom();}
void CFCEUD_MovieRecordTo(){  FCEUD_MovieRecordTo();}
void CFCEUD_SetInput(bool a1,bool a2,ESI a3,ESI a4,ESIFC a5){  FCEUD_SetInput(a1,a2,a3,a4,a5);}
void CFCEUD_LoadStateFrom(){  FCEUD_LoadStateFrom();}
void CFCEUD_SaveStateAs(){  FCEUD_SaveStateAs();}
void CFCEUI_LoadState(const char* a1,bool a2){  FCEUI_LoadState(a1,a2);}
void CFCEUI_SaveState(const char* a1,bool a2){  FCEUI_SaveState(a1,a2);}
void CFCEUI_SelectStateNext(int a1){  FCEUI_SelectStateNext(a1);}
int CFCEUI_SelectState(int a1,int a2){ return  FCEUI_SelectState(a1,a2);}
void CFCEUD_SoundVolumeAdjust(int a1){  FCEUD_SoundVolumeAdjust(a1);}
void CFCEUD_SoundToggle(){  FCEUD_SoundToggle();}
void CFCEUI_SetSoundQuality(int a1){  FCEUI_SetSoundQuality(a1);}
void CFCEUI_SetPCMVolume(uint32 a1){  FCEUI_SetPCMVolume(a1);}
void CFCEUI_SetNoiseVolume(uint32 a1){  FCEUI_SetNoiseVolume(a1);}
void CFCEUI_SetSquare2Volume(uint32 a1){  FCEUI_SetSquare2Volume(a1);}
void CFCEUI_SetSquare1Volume(uint32 a1){  FCEUI_SetSquare1Volume(a1);}
void CFCEUI_SetTriangleVolume(uint32 a1){  FCEUI_SetTriangleVolume(a1);}
void CFCEUI_SetSoundVolume(uint32 a1){  FCEUI_SetSoundVolume(a1);}
void CFCEUI_Sound(int a1){  FCEUI_Sound(a1);}
void CFCEUI_SetUserPalette(uint8* a1,int a2){  FCEUI_SetUserPalette(a1,a2);}
//void CFCEUI_SetBaseDirectory(const std::__cxx11::string& a1){  FCEUI_SetBaseDirectory(a1);}
void CFCEUI_SetRenderedLines(int a1,int a2,int a3,int a4){  FCEUI_SetRenderedLines(a1,a2,a3,a4);}
int CFCEUI_GetCurrentVidSystem(int* a1,int* a2){ return  FCEUI_GetCurrentVidSystem(a1,a2);}
void CFCEUI_SetRegion(int a1){  FCEUI_SetRegion(a1);}
void CFCEUI_SetVidSystem(int a1){  FCEUI_SetVidSystem(a1);}
void CFCEUI_SetGameGenie(bool a1){  FCEUI_SetGameGenie(a1);}
void CFCEUI_Kill(){  FCEUI_Kill();}
void CFCEUI_CloseGame(){  FCEUI_CloseGame();}
void CFCEUI_Emulate(uint8** a1,int32** a2,int32* a3,int a4){  FCEUI_Emulate(a1,a2,a3,a4);}
bool CFCEUI_Initialize(){ return  FCEUI_Initialize();}
FCEUGI* CFCEUI_LoadGameVirtual(const char* a1,int a2,bool a3){ return  FCEUI_LoadGameVirtual(a1,a2,a3);}
FCEUGI* CFCEUI_LoadGame(const char* a1,int a2,bool a3){ return  FCEUI_LoadGame(a1,a2,a3);}
void CFCEUI_GetRenderPlanes(bool& a1,bool& a2){  FCEUI_GetRenderPlanes(a1,a2);}
void CFCEUI_SetRenderPlanes(bool a1,bool a2){  FCEUI_SetRenderPlanes(a1,a2);}
void CFCEUI_DisableSpriteLimitation(int a1){  FCEUI_DisableSpriteLimitation(a1);}
void CFCEUI_UseInputPreset(int a1){  FCEUI_UseInputPreset(a1);}
bool CFCEUI_GetInputMicrophone(){ return  FCEUI_GetInputMicrophone();}
bool CFCEUI_GetInputFourscore(){ return  FCEUI_GetInputFourscore();}
void CFCEUI_SetInputFourscore(bool a1){  FCEUI_SetInputFourscore(a1);}
void CFCEUI_SetInputFC(ESIFC a1,void* a2,int a3){  FCEUI_SetInputFC(a1,a2,a3);}
void CFCEUI_SetInput(int a1,ESI a2,void* a3,int a4){  FCEUI_SetInput(a1,a2,a3,a4);}
void CFCEUI_SetNTSCTH(bool a1,int a2,int a3){  FCEUI_SetNTSCTH(a1,a2,a3);}
void CFCEUI_GetNTSCTH(int* a1,int* a2){  FCEUI_GetNTSCTH(a1,a2);}
void CFCEUI_NTSCINC(){  FCEUI_NTSCINC();}
void CFCEUI_NTSCDEC(){  FCEUI_NTSCDEC();}
void CFCEUI_NTSCSELTINT(){  FCEUI_NTSCSELTINT();}
void CFCEUI_NTSCSELHUE(){  FCEUI_NTSCSELHUE();}
void CFCEUI_PowerNES(){  FCEUI_PowerNES();}
void CFCEUI_ResetNES(){  FCEUI_ResetNES();}
int CFCEUI_EndWaveRecord(){ return  FCEUI_EndWaveRecord();}
bool CFCEUI_BeginWaveRecord(const char* a1){ return  FCEUI_BeginWaveRecord(a1);}
void CFCEUD_NetworkClose(){  FCEUD_NetworkClose();}
void CFCEUI_NetplayText(uint8* a1){  FCEUI_NetplayText(a1);}
void CFCEUD_NetplayText(uint8* a1){  FCEUD_NetplayText(a1);}
int CFCEUD_RecvData(void* a1,uint32 a2){ return  FCEUD_RecvData(a1,a2);}
int CFCEUD_SendData(void* a1,uint32 a2){ return  FCEUD_SendData(a1,a2);}
void CFCEUI_NetplayStop(){  FCEUI_NetplayStop();}
int CFCEUI_NetplayStart(int a1,int a2){ return  FCEUI_NetplayStart(a1,a2);}
void CFCEUD_Message(const char* a1){  FCEUD_Message(a1);}
void CFCEUD_PrintError(const char* a1){  FCEUD_PrintError(a1);}
void CFCEUD_GetPalette(uint8 a1,uint8* a2,uint8* a3,uint8* a4){  FCEUD_GetPalette(a1,a2,a3,a4);}
void CFCEUD_SetPalette(uint8 a1,uint8 a2,uint8 a3,uint8 a4){  FCEUD_SetPalette(a1,a2,a3,a4);}
const char* CFCEUD_GetCompilerString(){ return  FCEUD_GetCompilerString();}
//ArchiveScanRecord CFCEUD_ScanArchive(std::__cxx11::string a1){ return  FCEUD_ScanArchive(a1);}
//FCEUFILE* CFCEUD_OpenArchive(ArchiveScanRecord& a1,std::__cxx11::string& a2,std::__cxx11::string* a3){ return  FCEUD_OpenArchive(a1,a2,a3);}
//FCEUFILE* CFCEUD_OpenArchiveIndex(ArchiveScanRecord& a1,std::__cxx11::string& a2,int a3){ return  FCEUD_OpenArchiveIndex(a1,a2,a3);}
EMUFILE_FILE* CFCEUD_UTF8_fstream(const char* a1,const char* a2){ return  FCEUD_UTF8_fstream(a1,a2);}
FILE* CFCEUD_UTF8fopen(const char* a1,const char* a2){ return  FCEUD_UTF8fopen(a1,a2);}
//void CFCEU_SplitArchiveFilename(std::__cxx11::string a1,std::__cxx11::string& a2,std::__cxx11::string& a3,std::__cxx11::string& a4){  FCEU_SplitArchiveFilename(a1,a2,a3,a4);}
//std::__cxx11::string CFCEU_MakeFName(int a1,int a2,const char* a3){ return  FCEU_MakeFName(a1,a2,a3);}
//std::__cxx11::string CFCEU_MakePath(int a1,const char* a2){ return  FCEU_MakePath(a1,a2);}
//std::__cxx11::string CFCEU_GetPath(int a1){ return  FCEU_GetPath(a1);}
int CFCEU_fisarchive(FCEUFILE* a1){ return  FCEU_fisarchive(a1);}
uint64 CFCEU_fgetsize(FCEUFILE* a1){ return  FCEU_fgetsize(a1);}
int CFCEU_fgetc(FCEUFILE* a1){ return  FCEU_fgetc(a1);}
int CFCEU_read16le(uint16* a1,FCEUFILE* a2){ return  FCEU_read16le(a1,a2);}
int CFCEU_read32le(uint32* a1,FCEUFILE* a2){ return  FCEU_read32le(a1,a2);}
uint64 CFCEU_ftell(FCEUFILE* a1){ return  FCEU_ftell(a1);}
int CFCEU_fseek(FCEUFILE* a1,long int a2,int a3){ return  FCEU_fseek(a1,a2,a3);}
uint64 CFCEU_fwrite(void* a1,size_t a2,size_t a3,FCEUFILE* a4){ return  FCEU_fwrite(a1,a2,a3,a4);}
uint64 CFCEU_fread(void* a1,size_t a2,size_t a3,FCEUFILE* a4){ return  FCEU_fread(a1,a2,a3,a4);}
int CFCEU_fclose(FCEUFILE* a1){ return  FCEU_fclose(a1);}
bool CFCEU_isFileInArchive(const char* a1){ return  FCEU_isFileInArchive(a1);}
FCEUFILE* CFCEU_fopen(const char* a1,const char* a2,char* a3,char* a4,int a5,const char** a6){ return  FCEU_fopen(a1,a2,a3,a4,a5,a6);}
void CFCEU_PutImage(){  FCEU_PutImage();}
void CFCEU_TogglePPU(){  FCEU_TogglePPU();}
void CFCEU_DispMessageOnMovie(char* a1){  FCEU_DispMessageOnMovie(a1);}
void CFCEU_DispMessage(char* a1,int a2){  FCEU_DispMessage(a1,a2);}
void CFCEU_printf(char* a1){  FCEU_printf(a1);}
void CFCEU_PrintError(char* a1){  FCEU_PrintError(a1);}
int CFCEU_TextScanlineOffsetFromBottom(int a1){ return  FCEU_TextScanlineOffsetFromBottom(a1);}
int CFCEU_TextScanlineOffset(int a1){ return  FCEU_TextScanlineOffset(a1);}
void CFCEU_WriteRomByte(uint32 a1,uint8 a2){  FCEU_WriteRomByte(a1,a2);}
uint8 CFCEU_ReadRomByte(uint32 a1){ return  FCEU_ReadRomByte(a1);}
char* CFCEUI_GetAboutString(){ return  FCEUI_GetAboutString();}
void CFCEUI_RewindToLastAutosave(){  FCEUI_RewindToLastAutosave();}
void CFCEU_ResetVidSys(){  FCEU_ResetVidSys();}
void CFCEU_MemoryRand(uint8* a1,uint32 a2){  FCEU_MemoryRand(a1,a2);}
uint16 CFCEU_de16lsb(uint8* a1){ return  FCEU_de16lsb(a1);}
uint32 CFCEU_de32lsb(uint8* a1){ return  FCEU_de32lsb(a1);}
uint64 CFCEU_de64lsb(uint8* a1){ return  FCEU_de64lsb(a1);}
void CFCEU_en16lsb(uint8* a1,uint16 a2){  FCEU_en16lsb(a1,a2);}
void CFCEU_en32lsb(uint8* a1,uint32 a2){  FCEU_en32lsb(a1,a2);}


//-----------------------------------------------------------------------------------
//实现

}
